package com.css.test1;

import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.view.View;


/**
 * Created by css on 2017/10/9.
 */

public class UIUtils {

    public static Context getContext() {
        return MyApplication.getContext();
    }

    public static Handler getHandler() {
        return MyApplication.getHandler();
    }

    public static int getMainThreadId() {
        return MyApplication.getMainThreadId();
    }


    //---------------------加载资源文件-------------------------//

    /**
     * 获取字符串
     *
     * @param id
     * @return
     */
    public static String getString(int id) {
        return getContext().getResources().getString(id);

    }

    /**
     * 获取字符串数组
     *
     * @param id
     * @return
     */
    public static String[] getStringArray(int id) {
        return getContext().getResources().getStringArray(id);
    }

    /**
     * 图片
     *
     * @param id
     * @return
     */
    public static Drawable getDrawable(int id) {
        return getContext().getResources().getDrawable(id);
    }

    /**
     * 颜色
     *
     * @param id
     * @return
     */
    public static int getColor(int id) {
        return getContext().getResources().getColor(id);
    }

    /**
     * 获取尺寸
     *
     * @param id
     * @return
     */
    public static int getDimen(int id) {
        return getContext().getResources().getDimensionPixelSize(id);
        //返回具体的像素值
    }

    //根据id获取颜色的状态选择器
    public static ColorStateList getColorStateList(int id) {
        return getContext().getResources().getColorStateList(id);
    }

    //--------------------dp和px转换--------------------------//
    public static int dip2px(float dip) {
        float density = getContext().getResources().getDisplayMetrics().density;
        return (int) (dip * density + .5f);
    }

    public static float px2dip(int px) {
        float density = getContext().getResources().getDisplayMetrics().density;
        return px / density;
    }

    //-------------------加载布局文件--------------------------//
    public static View inflate(int id) {
        return View.inflate(getContext(), id, null);
    }


    //-------------------判断是否运行在主线程--------------------------//
    public static boolean idRunOnUIThread() {
        //获取当前线程id
        int myTid = android.os.Process.myTid();
        if (myTid == getMainThreadId()) {
            return true;
        }
        return false;

    }

    public static void runOnUIThread(Runnable r) {
        if (idRunOnUIThread()) {
            r.run();//在主线程中
        } else {
            getHandler().post(r);//如果是在子线程中，借助handler运行在主线程
        }
    }


}
